﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestorDeFlotas.Core;
using GestorDeFlotasDesktop.GD1C2012DataSetTableAdapters;

namespace GestorDeFlotasDesktop.RendirViajes
{
    public partial class RendirViajes : Form
    {
        public RendirViajes()
        {
            InitializeComponent();
        }
        private Chofer MyChofer { get; set; }
        private Turno MyTurno { get; set; }

        private void btnChofer_Click(object sender, EventArgs e)
        {
            AbmChofer.AbmChofer abmChofer = new AbmChofer.AbmChofer(ModoAbm.Consulta);
            if (abmChofer.ShowDialog() == DialogResult.OK && abmChofer.MyChofer != null)
            {
                this.MyChofer = abmChofer.MyChofer.Cargar();
                this.txtChofer.Text = string.Format("{0} {1}", this.MyChofer.Nombre, this.MyChofer.Apellido);
            }
        }

        private void RendierViajes_Load(object sender, EventArgs e)
        {

        }

        private void btnRendir_Click(object sender, EventArgs e)
        {
            if (this.txtChofer.Text != "" || this.txtTurno.Text != "" || this.dtpFecha.Text != "")
            {
                TL_RendicionesTableAdapter Rendiciones = new TL_RendicionesTableAdapter();
                TL_DetallesRendicionesTableAdapter DetallesRend = new TL_DetallesRendicionesTableAdapter();
                TL_CHOFERESTableAdapter Choferes = new TL_CHOFERESTableAdapter();
                int dia, mes, anio;
                if (Choferes.ScalarQuery_ChoferActivo(this.MyChofer.Id) > 0)
                {
                    MessageBox.Show("El chofer elegido se encuentra eliminado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                dia = Convert.ToDateTime(this.dtpFecha.Text).Day;
                mes = Convert.ToDateTime(this.dtpFecha.Text).Month;
                anio = Convert.ToDateTime(this.dtpFecha.Text).Year;

                if (this.MyTurno == null)
                {
                    MessageBox.Show("Debe seleccionar un Turno", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                int cantDetalles = (int)DetallesRend.ScalarQuery_CantRendiciones(this.MyChofer.Id, this.MyTurno.Id, dia, mes, anio);
                if (cantDetalles > 0)
                {
                    //int cantRendiciones = (int)Rendiciones.ScalarQuery_FueRendido(this.MyChofer.Id, this.MyTurno.Id, dia, mes, anio);
                     int cantRendidos = (int)DetallesRend.ScalarQuery_Rendido(this.MyChofer.Id, this.MyTurno.Id, dia, mes, anio);

                     if (cantRendidos == 0)
                    {
                        DatosRendicion datosRendicion = new DatosRendicion();
                        datosRendicion.MyTurno = this.MyTurno;
                        datosRendicion.MyChofer = this.MyChofer;
                        datosRendicion.Fecha = Convert.ToDateTime(this.dtpFecha.Text);
                        datosRendicion.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("No se han encontrado viajes para rendir con esos parametros", "Todos los viajas ya fueron rendidos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("No se han encontrado viajes con esos parametros", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void btnTurno_Click(object sender, EventArgs e)
        {
            AbmTurno.AbmTurno abmTurno = new AbmTurno.AbmTurno(ModoAbm.Consulta);
            if (abmTurno.ShowDialog() == DialogResult.OK && abmTurno.MyTurno != null)
            {
                this.MyTurno = abmTurno.MyTurno.Cargar();
                this.txtTurno.Text = this.MyTurno.Descripcion;
            }
        }

      
    }
}
